/**
 *
 * 工具类
 * @name setCookie ： 设置Cookie
 * @name getCookie ： 获取Cookie
 * @name delCookie ： 删除Cookie
 *
 * @name setSessionStorage ： 设置SessionStorage
 * @name getSessionStorage ： 获取SessionStorage
 * @name delSessionStorage ： 删除SessionStorage
 *
 * @name objKeySort ： 排序对象函数
 *
 */

// 获取cookie、、
export function getCookie (name) {
  var arr
  var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
  /* eslint no-cond-assign: "off" */
  if (arr = document.cookie.match(reg)) {
    return unescape(arr[2])
  } else {
    return null
  }
}

// 设置cookie,增加到vue实例方便全局调用
export function setCookie (cName, value, expiredays) {
  var exdate = new Date()
  exdate.setDate(exdate.getDate() + expiredays)
  document.cookie = cName + '=' + escape(value) + ((expiredays == null) ? '' : ';expires=' + exdate.toGMTString())
}

// 删除cookie
export function delCookie (name) {
  var exp = new Date()
  exp.setTime(exp.getTime() - 1)
  var cval = getCookie(name)
  if (cval != null) {
    document.cookie = name + '=' + cval + ';expires=' + exp.toGMTString()
  }
}

// 获取sessionStorage
export function getSessionStorage (name) {
  return sessionStorage.getItem(name)
}

// 设置sessionStorage,增加到vue实例方便全局调用
export function setSessionStorage (name, value) {
  return sessionStorage.setItem(name, value)
}

// 删除sessionStorage
export function delSessionStorage (name) {
  return sessionStorage.clear(name)
}

// 排序的函数
export function objKeySort (obj) {
  // 先用Object内置类的keys方法获取要排序对象的属性名，再利用Array原型上的sort方法对获取的属性名进行排序，newkey是一个数组
  var newkey = Object.keys(obj).sort()
  // 创建一个新的对象，用于存放排好序的键值对
  var newObj = {}
  // 遍历newkey数组
  for (var i = 0; i < newkey.length; i++) {
    // 向新创建的对象中按照排好的顺序依次增加键值对
    newObj[newkey[i]] = obj[newkey[i]]
  }
  // 返回排好序的新对象
  return newObj
}
